home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1993-06-11 | 6.6 KB | 137 lines |
- DEFINITION MODULE sys;
- __DEF_SWITCHES__
- #ifdef HM2
- #ifdef __LONG_WHOLE__
- (*$!i+: Modul muss mit $i- uebersetzt werden! *)
- (*$!w+: Modul muss mit $w- uebersetzt werden! *)
- #else
- (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
- (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
- #endif
- #endif
- (*****************************************************************************)
- (* Systeminformationen und -einstellungen. *)
- (* *)
- (* Ein Fehler ist immer dann aufgetreten, wenn bei Funktionen mit Typ INTEGER*)
- (* ein negativer Wert zurueckgegeben wird. *)
- (* Die genaue Fehlerursache kann bei Bedarf ueber "err.errno" und die ent- *)
- (* sprechenden Konstanten ermittelt werden. Die Funktionen veraendern "errno"*)
- (* nur dann, wenn ein Fehler aufgetreten ist, bei erfolgreicher Ausfuehrung *)
- (* wird "errno" nicht veraendert. *)
- (* *)
- (* "GEMDOS": *)
- (* Die Eigenschaften der Funktionen unter dem ``blanken'' "GEMDOS" sind z.T. *)
- (* stark eingeschraenkt; unter dem Stichwort "GEMDOS" ist deswegen immer *)
- (* angegeben, in wieweit die Funktion emuliert werden kann. Ist MiNT-Unter- *)
- (* stuetzung angegeben, so ist unter der Betriebssystemerweiterung "MiNT" *)
- (* eine bessere Unterstuetzung der Funktionen zu erwarten. *)
- (* --------------------------------------------------------------------------*)
- (* 20-Nov-93, Holger Kleinschmidt *)
- (*****************************************************************************)
-
- FROM PORTAB IMPORT
- (* TYPE *) SIGNEDLONG;
-
- FROM types IMPORT
- (* TYPE *) timeT, ssizeT;
-
- (*=========================== "uname()" =====================================*)
-
- TYPE
- UtsnameRec = RECORD
- (* Laenge und Inhalt der einzelnen Strings sind systemspezifisch *)
- sysname : ARRAY [0..9] OF CHAR;
- nodename : ARRAY [0..9] OF CHAR;
- release : ARRAY [0..9] OF CHAR;
- version : ARRAY [0..9] OF CHAR;
- machine : ARRAY [0..9] OF CHAR;
- END;
-
- (*==================== "pathconf()", "sysconf()" ============================*)
-
- CONST (* nicht POSIX: *)
- #if no_MIN_MAX
- UNLIMITED = 7FFFFFFFH; (* <=> Wert nur durch Speicher o.ae. begrenzt *)
- #else
- UNLIMITED = MAX(SIGNEDLONG); (* <=> Wert nur durch Speicher o.ae. begrenzt *)
- #endif
-
- TYPE
- PConfVal = (
- pcLinkMax, (* Max. Anzahl Links *)
- pcPathMax, (* Max. Laenge einer kompletten Pfadangabe *)
- pcNameMax, (* Max. Laenge eines Dateinamens ohne Pfad *)
- pcPipeBuf, (* Anzahl Bytes, die ``atomar'' in Pipe geschrieben werden *)
- pcNoTrunc, (* Werden Pfadangaben automatisch gekuerzt ? *)
- pcMaxCanon,
- pcMaxInput,
- pcChownRestricted,(* Kann Benutzer seine Dateien fuer andere freigeben ? *)
- pcVdisable
- );
-
- TYPE
- SConfVal = (
- scArgMax, (* max. Laenge fuer Argumente und Environment bei "exec*()" *)
- scOpenMax, (* max. Anzahl gleichzeitig offener Dateien *)
- scNGroupsMax,
- scChildMax, (* max. Anzahl gleichzeitig ex. Prozesse pro Benutzer *)
- scClkTck, (* = CLKTCK, Anzahl Intervalle/Sek bei Typ 'clockT' *)
- scJobControl,(* wird ``Job Control'' unterstuetzt ? *)
- scSavedIds,
- scVersion (* POSIX-Version, 6 dez. Digits, z.B. 198808 oder 199009 *)
- );
-
- (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
-
- PROCEDURE uname ((* --/AUS *) VAR name : UtsnameRec ): INTEGER;
-
- (*--------------------------------------------------------------------------
- | Liefert systemspezifische Informationen ueber das System in Form von |
- | Strings. |
- | |
- | GEMDOS/MiNT: |
- | 'sysname': "TOS" oder "MiNT" |
- | 'nodename': "" |
- | 'release': MiNT-Version |
- | 'version': TOS-Version |
- | 'machine': "atarist", "atariste", "ataritt" oder "atari" |
- --------------------------------------------------------------------------*)
-
-
- PROCEDURE pathconf ((* EIN/ -- *) REF path : ARRAY OF CHAR;
- (* EIN/ -- *) which : PConfVal ): SIGNEDLONG;
-
- (*--------------------------------------------------------------------------
- | Ermittelt Maximalwerte (siehe Def. 'PConfVal') fuer das Dateisystem, auf |
- | dem sich <path> befindet. |
- | Wenn ein Wert unbegrenzt ist, wird UNLIMITED zurueckgegeben. |
- | |
- | GEMDOS: Die Werte sind feste Konstanten. |
- | MiNT: 'pcLinkMax', 'pcPathMax', 'pcNameMax', 'pcPipeBuf', 'pcNoTrunc' |
- | werden ueber 'Dpathconf' ermittelt, der Rest sind Konstanten. |
- --------------------------------------------------------------------------*)
-
- PROCEDURE sysconf ((* EIN/ -- *) which : SConfVal ): SIGNEDLONG;
-
- (*--------------------------------------------------------------------------
- | Ermittelt Maximalwerte (siehe Def. 'SConfVal') fuer das System. |
- | Wenn ein Wert unbegrenzt ist, wird UNLIMITED zurueckgegeben. |
- | |
- | GEMDOS: Die Werte sind feste Konstanten. |
- | MiNT: 'scOpenMax', 'scChildMax' und 'scNGroupsMax' werden ueber |
- | 'Sysconf' ermittelt, der Rest sind Konstanten. |
- --------------------------------------------------------------------------*)
-
-
- PROCEDURE time ((* -- /AUS *) VAR time : timeT );
-
- (*--------------------------------------------------------------------------
- | Liefert in <time> das aktuelle Datum/die aktuelle Zeit in Sekunden seit |
- | dem 1.Jan.1970. |
- | |
- | GEMDOS: Zeit und Datum sind im DOS-Format, siehe 'types.timeT' |
- | MiNT: -""- |
- --------------------------------------------------------------------------*)
-
- END sys.
-